package com.hpe.core.enums;

import org.apache.commons.lang.StringUtils;

/**
 * 渠道枚举
 * @author luolin
 *
 * @version $id:ChannelsEnum.java,v 0.1 2015年12月22日 下午3:19:11 luolin Exp $
 */
public enum ChannelsEnum {
    /** 网站 */
    LUXIAN("1", "网站"),
    /** 一体机 */
    LONGCHANG("2", "一体机"),
    /** 手机 */
    LUZHOU("3", "手机"),
    /** 微信 */
    GUANGCHANG("4", "微信"),
    /** 一步登乘 */
    RONGXIAN("5", "一步登乘"),
    /** 携程 */
    ZIGONG("10", "携程"),
    /** 总量 */
    TOTAL("-1", "总量");

    /** 业务类型枚举key值 */
    private final String code;

    /** 业务类型枚举描述信息 */
    private final String desc;

    /**
     * Getter method for property <tt>code</tt>.
     * 
     * @return property value of code
     */
    public String getCode() {
        return code;
    }

    /**
     * Getter method for property <tt>desc</tt>.
     * 
     * @return property value of desc
     */
    public String getDesc() {
        return desc;
    }

    /**
     * @param code
     *            枚举key值
     * @param desc
     *            枚举描述信息
     */
    private ChannelsEnum(final String code, final String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 通过code值获取枚举对象
     * 
     * @param code 枚举值
     * @return 枚举对象
     */
    public static ChannelsEnum getByCode(String code) {
        if (StringUtils.isBlank(code)) {
            return null;
        }
        for (ChannelsEnum type : values()) {
            if (type.getCode().equals(code)) {
                return type;
            }
        }
        return null;
    }

    /**
     * 通过desc值获取枚举对象
     * @param desc 枚举值
     * @return 枚举对象
     */
    public static ChannelsEnum getByDesc(String desc) {
        if (StringUtils.isBlank(desc)) {
            return null;
        }
        for (ChannelsEnum type : values()) {
            if (type.getDesc().equals(desc)) {
                return type;
            }
        }
        return null;
    }
}
